package com.superteam.zzl.utils;

import android.content.Context;
import android.graphics.Bitmap;
import android.view.View;
import android.widget.ImageView;
import com.bigkoo.convenientbanner.ConvenientBanner;
import com.bigkoo.convenientbanner.holder.CBViewHolderCreator;
import com.bigkoo.convenientbanner.holder.Holder;
import com.superteam.zzl.activity.R;

import java.util.ArrayList;

/**
 * Created by zhang on 2017/1/6.
 */

/**
 * 图片轮播
 */
public class ImageCarousel {

    private ConvenientBanner mCb;//显示轮播图片的控件对象
    private ArrayList<Bitmap> bitmaps;//图片集合

    /**
     * 构造方法
     * @param mCb
     * @param bitmaps
     */
    public ImageCarousel(ConvenientBanner mCb, ArrayList<Bitmap> bitmaps) {
        this.mCb = mCb;
        this.bitmaps = bitmaps;
        initDatas();
    }


    public void initDatas() {
        mCb.setPages(new CBViewHolderCreator<ImageViewHolder>() {
            @Override
            public ImageViewHolder createHolder() {
                return new ImageViewHolder();
            }
        },bitmaps)
                .setPageIndicator(new int[]{R.drawable.ponit_normal,R.drawable.point_select}) //设置两个点作为指示器
                .setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.ALIGN_PARENT_RIGHT) //设置指示器的方向
                //.setPageIndicator(null) //设置两个点作为指示器
                .setPageIndicatorAlign(ConvenientBanner.PageIndicatorAlign.ALIGN_PARENT_RIGHT); //设置指示器的方向水平居中

//        mCb.setCanLoop(true);
    }

    public class ImageViewHolder implements Holder<Bitmap> {

        private ImageView imageView;

        @Override
        public View createView(Context context) {
            imageView = new ImageView(context);
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            return imageView;
        }

        @Override
        public void UpdateUI(Context context, int position, Bitmap data) {
            imageView.setImageBitmap(data);
        }
    }



}

/**
 * 使用***************
 */

/**
 *
 * 创建该类的对象 传入相应的参数，一个是用于显示轮播图片的控件,一个是用于存储图片的集合
 *
 *获得焦点时开始轮播   隐藏时停止轮播
 * @Override
protected void onResume() {
super.onResume();
mCb.startTurning(2000);//设置开始轮播以及轮播时间
}

 @Override
 protected void onPause() {
 if(mCb!=null){
 mCb.stopTurning();//停止轮播
 }
 super.onPause();
 }

 设置点击事件直接用控件对象设置即可

 public void initListener(ConvenientBanner mCb) {
 mCb.setOnItemClickListener(new OnItemClickListener() {
 @Override
 public void onItemClick(int position) {

 }
 });
 }
 */
